package com.example.mybatisplusdemo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.mybatisplusdemo.model.domain.Product;
import com.example.mybatisplusdemo.model.domain.User;
import com.example.mybatisplusdemo.model.vo.UserVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

/**
 * <p>
 * 用户信息 Mapper 接口
 * </p>
 *
 * @author lqj
 * @since 2025-06-22
 */
public interface UserMapper extends BaseMapper<User> {

    //任何情况下，均要为参数取别名
    User selectByIdmy(@Param("id") int i);//每一个mapper接口都应该有一个sql语句对应，但现在没有
    // 注释用来检测是否可以提交
    UserVO selectByIdWithAddress(@Param("idWithAddress") int i);

    Page<User> selectPageMy(@Param("page") Page<User> page, @Param("user") User user);

    User selectByName(@Param("username") String username);

    User selectAddressesByName(@Param("name") String username);

    Page<Product> pageList(@Param("page") Page<Product> page, @Param("user") User user);

    void increaseBalance(@Param("userId") Long userId, @Param("amount") BigDecimal amount);
}
